Entity Framework (EF) এবং ASP.NET Core API এর মধ্যে ইন্টিগ্রেশন খুবই গুরুত্বপূর্ণ, কারণ এটি ডেটাবেস সংক্রান্ত কার্যক্রম যেমন ডেটা পড়া, লেখা, আপডেট করা এবং মুছে ফেলা সহজভাবে পরিচালনা করতে সাহায্য করে। ASP.NET Core API এবং EF Core ব্যবহার করে RESTful API তৈরি করার মাধ্যমে, আপনি ডেটাবেস অপারেশনগুলো খুবই দক্ষতার সাথে পরিচালনা করতে পারেন।
এখানে আমরা দেখব কীভাবে EF Core কে ASP.NET Core API এর সাথে ইন্টিগ্রেট করা যায় এবং বিভিন্ন API রুটের মাধ্যমে ডেটাবেস থেকে ডেটা রিট্রিভ করা, তৈরি করা, আপডেট করা এবং ডিলিট করা যায়।
প্রথমে, একটি নতুন ASP.NET Core Web API প্রজেক্ট তৈরি করতে হবে। Visual Studio ব্যবহার করে আপনি খুব সহজেই এই প্রজেক্টটি তৈরি করতে পারেন।
Add -> Controller
থেকে "API Controller - Empty" নির্বাচন করুনASP.NET Core API প্রজেক্টে Entity Framework Core ব্যবহার করতে হলে আপনাকে EF Core প্যাকেজ ইনস্টল করতে হবে। এটি ইনস্টল করার জন্য আপনি NuGet Package Manager বা Package Manager Console ব্যবহার করতে পারেন।
dotnet add package Microsoft.EntityFrameworkCore
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
dotnet add package Microsoft.EntityFrameworkCore.Tools
এই প্যাকেজগুলো ইনস্টল করার মাধ্যমে, EF Core আপনার প্রজেক্টে ব্যবহারযোগ্য হয়ে যাবে।
EF Core ব্যবহার করতে হলে, আপনাকে একটি DbContext
ক্লাস এবং মডেল তৈরি করতে হবে। DbContext
ক্লাসটি ডেটাবেসের সাথে ইন্টারঅ্যাক্ট করতে ব্যবহৃত হয় এবং মডেল ক্লাসগুলো ডেটাবেস টেবিলের প্রতিনিধিত্ব করে।
User
মডেল ক্লাসpublic class User
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
ApplicationDbContext
ক্লাসpublic class ApplicationDbContext : DbContext
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{ }
public DbSet<User> Users { get; set; }
}
এই ক্লাসে, Users
DbSet টেবিলের প্রতিনিধিত্ব করে।
ASP.NET Core এ appsettings.json
ফাইলের মধ্যে ডেটাবেস সংযোগের তথ্য যোগ করতে হবে।
appsettings.json
ফাইলে সংযোগ স্ট্রিং{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=ApiExampleDb;Trusted_Connection=True;"
}
}
এখানে, "DefaultConnection"
টোকেনটি ডেটাবেসের সংযোগ স্ট্রিং হিসেবে ব্যবহৃত হবে।
Startup.cs
বা Program.cs
ফাইলে DbContext কনফিগারেশনpublic void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddControllers();
}
এখানে, ApplicationDbContext
কনফিগার করা হচ্ছে এবং ডেটাবেসের সংযোগ স্ট্রিং ব্যবহার করা হচ্ছে।
এখন, একটি API Controller তৈরি করতে হবে যা ডেটাবেসের CRUD (Create, Read, Update, Delete) অপারেশন সম্পাদন করবে। এই Controller-এ EF Core এর DbContext
ইনজেক্ট করে ডেটাবেস অপারেশন সম্পাদন করা যাবে।
UserController
[Route("api/[controller]")]
[ApiController]
public class UserController : ControllerBase
{
private readonly ApplicationDbContext _context;
public UserController(ApplicationDbContext context)
{
_context = context;
}
// GET: api/User
[HttpGet]
public async Task<ActionResult<IEnumerable<User>>> GetUsers()
{
return await _context.Users.ToListAsync();
}
// GET: api/User/5
[HttpGet("{id}")]
public async Task<ActionResult<User>> GetUser(int id)
{
var user = await _context.Users.FindAsync(id);
if (user == null)
{
return NotFound();
}
return user;
}
// POST: api/User
[HttpPost]
public async Task<ActionResult<User>> PostUser(User user)
{
_context.Users.Add(user);
await _context.SaveChangesAsync();
return CreatedAtAction("GetUser", new { id = user.Id }, user);
}
// PUT: api/User/5
[HttpPut("{id}")]
public async Task<IActionResult> PutUser(int id, User user)
{
if (id != user.Id)
{
return BadRequest();
}
_context.Entry(user).State = EntityState.Modified;
await _context.SaveChangesAsync();
return NoContent();
}
// DELETE: api/User/5
[HttpDelete("{id}")]
public async Task<IActionResult> DeleteUser(int id)
{
var user = await _context.Users.FindAsync(id);
if (user == null)
{
return NotFound();
}
_context.Users.Remove(user);
await _context.SaveChangesAsync();
return NoContent();
}
}
এখানে, UserController
ক্লাসে বিভিন্ন HTTP রিকোয়েস্ট যেমন GET, POST, PUT, DELETE এর মাধ্যমে CRUD অপারেশন করা হয়েছে।
এখন, আপনি Postman বা Swagger ব্যবহার করে API টেস্ট করতে পারেন। Swagger UI সাধারণত ASP.NET Core API প্রজেক্টে ডিফল্টভাবেই সংযুক্ত থাকে এবং এটি API রুটগুলো টেস্ট করার জন্য খুবই উপকারী।
DbContext
ইনজেক্ট করুন, যেন আপনার কোড টেস্টযোগ্য হয় এবং ডাটাবেসের সাথে সহজে যোগাযোগ করা যায়।ToListAsync()
, FindAsync()
ইত্যাদি, যা API এর পারফরম্যান্স বাড়ায় এবং আই/ও অপারেশনগুলো আরও কার্যকরীভাবে পরিচালনা করে।EF এবং ASP.NET Core API ইন্টিগ্রেট করলে আপনি শক্তিশালী, স্কেলেবল এবং সহজে টেস্টযোগ্য অ্যাপ্লিকেশন তৈরি করতে পারবেন।
common.read_more